import http from '../request'
import type {UserQueryDTO, UserStatusUpdateDTO, UserUpdateDTO} from '@/types/dto/user'
import type {ResetPasswordDTO} from '@/types/dto/auth'
import type {UserVO} from '@/types/vo/user'
import type {PageVO} from '@/types/common'

export const userApi = {
    /** 获取当前用户信息 */
    getCurrentUser() {
        return http.get<UserVO>('/user/me')
    },

    /** 更新个人资料 */
    updateProfile(payload: UserUpdateDTO) {
        return http.put<UserVO>('/user/me', payload)
    },

    /** 重置密码 */
    resetPassword(payload: ResetPasswordDTO) {
        return http.put<void>('/user/me/password', payload)
    },

    /** 用户列表（管理员）*/
    list(params: UserQueryDTO) {
        return http.get<PageVO<UserVO>>('/user/list', {params})
    },

    /** 获取用户详情（管理员）*/
    getById(userId: number) {
        return http.get<UserVO>(`/user/${userId}`)
    },

    /** 更新用户状态（管理员）*/
    updateStatus(userId: number, payload: UserStatusUpdateDTO) {
        return http.patch<void>(`/user/${userId}/status`, payload)
    },
}
